package almacenes.modelo.entidad;
// Generated 16/02/2012 04:45:02 PM by Hibernate Tools 3.4.0.CR1


import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.UniqueConstraint;

/**
 * GuiaRemision generated by hbm2java
 */
@Entity
@Table(name="GUIA_REMISION"
    , uniqueConstraints = @UniqueConstraint(columnNames={"SERIE_GUIA", "NUM_GUIA"}) 
)
public class GuiaRemision  implements java.io.Serializable {


     private long idGuia;
     private LoteGuias loteGuias;
     private String serieGuia;
     private String numGuia;
     private byte idEstadoGuia;
     private Boolean flgNoConforme;
     private String usuReg;
     private Date fecReg;
     private String usuAct;
     private Date fecAct;
     private Set<SeguimientoGuiaRemision> seguimientoGuiaRemisions = new HashSet(0);
     private Set<GuiaSolicitud> guiaSolicituds = new HashSet(0);

    public GuiaRemision() {
    }

	
    public GuiaRemision(long idGuia, LoteGuias loteGuias, String serieGuia, String numGuia, byte idEstadoGuia) {
        this.idGuia = idGuia;
        this.loteGuias = loteGuias;
        this.serieGuia = serieGuia;
        this.numGuia = numGuia;
        this.idEstadoGuia = idEstadoGuia;
    }
    public GuiaRemision(long idGuia, LoteGuias loteGuias, String serieGuia, String numGuia, byte idEstadoGuia, Boolean flgNoConforme, String usuReg, Date fecReg, String usuAct, Date fecAct, Set<SeguimientoGuiaRemision> seguimientoGuiaRemisions, Set<GuiaSolicitud> guiaSolicituds) {
       this.idGuia = idGuia;
       this.loteGuias = loteGuias;
       this.serieGuia = serieGuia;
       this.numGuia = numGuia;
       this.idEstadoGuia = idEstadoGuia;
       this.flgNoConforme = flgNoConforme;
       this.usuReg = usuReg;
       this.fecReg = fecReg;
       this.usuAct = usuAct;
       this.fecAct = fecAct;
       this.seguimientoGuiaRemisions = seguimientoGuiaRemisions;
       this.guiaSolicituds = guiaSolicituds;
    }
   
     @Id 

    @Column(name="ID_GUIA", unique=true, nullable=false, precision=10, scale=0)
 	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SQ_GUIA_REMISION")
 	@SequenceGenerator(name = "SQ_GUIA_REMISION", sequenceName = "SQ_GUIA_REMISION",allocationSize=1)
 	
    public long getIdGuia() {
        return this.idGuia;
    }
    
    public void setIdGuia(long idGuia) {
        this.idGuia = idGuia;
    }

@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="ID_LOTE_GUIA", nullable=false)
    public LoteGuias getLoteGuias() {
        return this.loteGuias;
    }
    
    public void setLoteGuias(LoteGuias loteGuias) {
        this.loteGuias = loteGuias;
    }

    
    @Column(name="SERIE_GUIA", nullable=false, length=5)
    public String getSerieGuia() {
        return this.serieGuia;
    }
    
    public void setSerieGuia(String serieGuia) {
        this.serieGuia = serieGuia;
    }

    
    @Column(name="NUM_GUIA", nullable=false, length=10)
    public String getNumGuia() {
        return this.numGuia;
    }
    
    public void setNumGuia(String numGuia) {
        this.numGuia = numGuia;
    }

    
    @Column(name="ID_ESTADO_GUIA", nullable=false, precision=2, scale=0)
    public byte getIdEstadoGuia() {
        return this.idEstadoGuia;
    }
    
    public void setIdEstadoGuia(byte idEstadoGuia) {
        this.idEstadoGuia = idEstadoGuia;
    }

    
    @Column(name="FLG_NO_CONFORME", precision=1, scale=0)
    public Boolean getFlgNoConforme() {
        return this.flgNoConforme;
    }
    
    public void setFlgNoConforme(Boolean flgNoConforme) {
        this.flgNoConforme = flgNoConforme;
    }

    
    @Column(name="USU_REG", length=10)
    public String getUsuReg() {
        return this.usuReg;
    }
    
    public void setUsuReg(String usuReg) {
        this.usuReg = usuReg;
    }

    @Temporal(TemporalType.DATE)
    @Column(name="FEC_REG", length=7)
    public Date getFecReg() {
        return this.fecReg;
    }
    
    public void setFecReg(Date fecReg) {
        this.fecReg = fecReg;
    }

    
    @Column(name="USU_ACT", length=10)
    public String getUsuAct() {
        return this.usuAct;
    }
    
    public void setUsuAct(String usuAct) {
        this.usuAct = usuAct;
    }

    @Temporal(TemporalType.DATE)
    @Column(name="FEC_ACT", length=7)
    public Date getFecAct() {
        return this.fecAct;
    }
    
    public void setFecAct(Date fecAct) {
        this.fecAct = fecAct;
    }

@OneToMany(fetch=FetchType.LAZY, mappedBy="guiaRemision")
    public Set<SeguimientoGuiaRemision> getSeguimientoGuiaRemisions() {
        return this.seguimientoGuiaRemisions;
    }
    
    public void setSeguimientoGuiaRemisions(Set<SeguimientoGuiaRemision> seguimientoGuiaRemisions) {
        this.seguimientoGuiaRemisions = seguimientoGuiaRemisions;
    }

@OneToMany(fetch=FetchType.LAZY, mappedBy="guiaRemision")
    public Set<GuiaSolicitud> getGuiaSolicituds() {
        return this.guiaSolicituds;
    }
    
    public void setGuiaSolicituds(Set<GuiaSolicitud> guiaSolicituds) {
        this.guiaSolicituds = guiaSolicituds;
    }


	@Override
	public String toString() {
		return "GuiaRemision [idGuia=" + idGuia + ", serieGuia=" + serieGuia
				+ ", numGuia=" + numGuia + ", idEstadoGuia=" + idEstadoGuia
				+ ", flgNoConforme=" + flgNoConforme + ", usuReg=" + usuReg
				+ ", fecReg=" + fecReg + ", usuAct=" + usuAct + ", fecAct="
				+ fecAct + "]";
	}



}


